package com.yidu.ladder.base.dao;

import java.util.List;
import java.util.Map;

import com.yidu.ladder.base.domain.Role;
import com.yidu.ladder.base.domain.RoleVo;
import com.yidu.ladder.base.domain.Subset;

/**
 * 角色数据访问接口类
 * 
 * @author yy
 * @since 2019-12-2
 *
 */
public interface RoleDao {

	/**
	 * 查询所有角色
	 * 
	 * @param roleVo 角色包装
	 * @return
	 */
	public List<RoleVo> queryRoleByCriteriaWithPage(RoleVo roleVo);

	/**
	 * 计算角色数量
	 * 
	 * @param roleVo 角色包装
	 * @return
	 */
	public int countRoleByCriteria(RoleVo roleVo);

	/**
	 * 添加角色
	 * 
	 * @param role 角色
	 * @return
	 */
	public int addRole(Role role);

	/**
	 * 修改角色
	 * 
	 * @param role 角色
	 * @return
	 */
	public int updateRole(Role role);

	/**
	 * 冻结或还原角色
	 * 
	 * @param map
	 * @return
	 */
	public int frozenOrRecoveRole(Map<String, Object> map);

	/**
	 * 给下拉框赋值
	 * 
	 * @return
	 */
	public List<Subset> selectAllSubset();

}
